package repositorio;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the HABITACION database table.
 * 
 */
@Entity
@NamedQuery(name="Habitacion.findAll", query="SELECT h FROM Habitacion h")
public class Habitacion implements Serializable {
	private static final long serialVersionUID = 1L;
	private String nrohabitacion;
	private int mantenimiento;
	private List<Estadia> estadias;
	private Categoria categoria;
	private List<Reserva> reservas;

	public Habitacion() {
	}


	@Id
	@SequenceGenerator(name="HABITACION_NROHABITACION_GENERATOR" )
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="HABITACION_NROHABITACION_GENERATOR")
	public String getNrohabitacion() {
		return this.nrohabitacion;
	}

	public void setNrohabitacion(String nrohabitacion) {
		this.nrohabitacion = nrohabitacion;
	}


	public int getMantenimiento() {
		return this.mantenimiento;
	}

	public void setMantenimiento(int mantenimiento) {
		this.mantenimiento = mantenimiento;
	}


	//bi-directional many-to-one association to Estadia
	@OneToMany(mappedBy="habitacion", fetch=FetchType.EAGER)
	public List<Estadia> getEstadias() {
		return this.estadias;
	}

	public void setEstadias(List<Estadia> estadias) {
		this.estadias = estadias;
	}

	public Estadia addEstadia(Estadia estadia) {
		getEstadias().add(estadia);
		estadia.setHabitacion(this);

		return estadia;
	}

	public Estadia removeEstadia(Estadia estadia) {
		getEstadias().remove(estadia);
		estadia.setHabitacion(null);

		return estadia;
	}


	//uni-directional many-to-one association to Categoria
	@ManyToOne
	@JoinColumn(name="ID_CATEGORIA")
	public Categoria getCategoria() {
		return this.categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}


	//bi-directional many-to-one association to Reserva
	@OneToMany(mappedBy="habitacion", fetch=FetchType.EAGER)
	public List<Reserva> getReservas() {
		return this.reservas;
	}

	public void setReservas(List<Reserva> reservas) {
		this.reservas = reservas;
	}

	public Reserva addReserva(Reserva reserva) {
		getReservas().add(reserva);
		reserva.setHabitacion(this);

		return reserva;
	}

	public Reserva removeReserva(Reserva reserva) {
		getReservas().remove(reserva);
		reserva.setHabitacion(null);

		return reserva;
	}

}